from typing import List
class Solution:
    def numberOfSubarrays(self, nums: List[int], k: int) -> int:
        s = [-1] # 因为下标是从零开始的，例如我们要计算从num[0]到num[0]有几个数，我们可以用下标0减去-1
        for i in range(len(nums)):
            if nums[i] % 2 == 1:
                s.append(i)
        s.append(len(nums))
        # 以数组[2,2,2,1,2,2,1,2,2,2]为例，得到的奇数下标 [-1, 3, 6, 10]
        ans = 0
        for i in range(1, len(s)-k):
            ans += (s[i] - s[i-1]) * (s[i+k] - s[i+k-1])
            # 前面的变化 * 后面的变化
        return ans

if __name__ == "__main__":
    r = Solution().numberOfSubarrays([2,2,2,1,1,2,1,2,2,2],2)
    print(r)